package com.uubx.utils;

import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * @Author wyy
 * @Date 2020/12/15 23:20
 * @Version 1.0
 */
public class JedisTemplete {

    @Autowired
    private JedisPool jedisPool;

    private Jedis getJedis() {
        return jedisPool.getResource();
    }

    /**
     * 设置String类型的值
     * @param key
     * @param value
     * @return 返回OK就是成功
     */
    public String set(String key,String value){

        Jedis jedis = getJedis();

        String result = jedis.set(key, value);
        //关一下
        jedis.close();
        return result;
    }

    /**
     * 获取String类型的值
     * @param key
     * @return
     */
    public String get(String key){

        Jedis jedis = getJedis();

        String result = jedis.get(key);
        //关一下
        jedis.close();
        return result;
    }

    /**
     * 设置hash类型的值
     * @param key
     * @param filed
     * @param value
     * @return 1成功 0失败
     */
    public Long hset(String key,String filed,String value){
        Jedis jedis=getJedis();
        Long result = jedis.hset(key, filed, value);

        jedis.close();
        return result;
    }


    /**
     * 获取hash类型的value
     * @param key
     * @param filed
     * @return
     */
    public String hget(String key,String filed){
        Jedis jedis=getJedis();
        String result = jedis.hget(key, filed);
        jedis.close();
        return result;
    }

    /**
     * 设置过期时间
     * @param key
     * @param seconds
     * @return
     */
    public Long expire(String key,Integer seconds){
        Jedis jedis=getJedis();
        Long result = jedis.expire(key, seconds);
        jedis.close();

        return result;
    }


    /**
     * 获取递增数字的结果
     * @param key
     * @return 递增结果
     */
    public Long incr(String key){
        Jedis jedis=getJedis();
        Long result = jedis.incr(key);
        jedis.close();
        return result;
    }

    /**
     * 获取递减数字的结果
     * @param key
     * @return  递减结果
     */
    public Long decr(String key){
        Jedis jedis=getJedis();
        Long result = jedis.decr(key);
        jedis.close();
        return result;
    }

    /**
     * 移除指定的key
     * @param key
     * @return
     */
    public Long remove(String key){
        Jedis jedis=getJedis();
        Long result = jedis.del(key);
        jedis.close();
        return result;
    }

}
